﻿using System;
using System.ComponentModel;
using System.Windows.Forms;

namespace T4_Eind_programma
{
    public partial class Hoofdscherm : Form
    {
        #region Variable Declaration

        private Controller mijnController = new Controller();
        private OrderScherm mijnOrderscherm;

        #endregion Variable Declaration

        #region Constructor

        public Hoofdscherm()
        {
            InitializeComponent();
            mijnController.OrderList = mijnController.MijnIO.ReadOrderList(mijnController.MijnIO.Location, mijnController.MijnIO.FileNameOrder);
            Application.ApplicationExit += new EventHandler(OnApplicationExit);
        }

        #endregion Constructor

        private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Hoofdscherm());
        }

        #region Button Clicks

        private void btnHistorie_Click(object sender, EventArgs e)
        {
            HistorieScherm mijnHistoriescherm = new HistorieScherm(mijnController.OrderList);
            mijnHistoriescherm.Closing += new System.ComponentModel.CancelEventHandler(OnSearchClosingZonderWegschrijven);
            this.Enabled = false;
            mijnHistoriescherm.Show();
        }

        private void btnOEE_Click(object sender, EventArgs e)
        {
            OEEScherm mijnOEEScherm = new OEEScherm(mijnController);
            mijnOEEScherm.Closing += new System.ComponentModel.CancelEventHandler(OnSearchClosingZonderWegschrijven);
            this.Enabled = false;
            mijnOEEScherm.Show();
        }

        private void btnOrders_Click(object sender, EventArgs e)
        {
            mijnOrderscherm = new OrderScherm(mijnController);
            mijnOrderscherm.Closing += new System.ComponentModel.CancelEventHandler(OnSearchClosing);
            this.Enabled = false;
            mijnOrderscherm.Show();
        }

        private void btnPauze_Click(object sender, EventArgs e)
        {
        }

        #endregion Button Clicks

        private void Hoofdscherm_FormClosed(object sender, FormClosedEventArgs e)
        {
            mijnController.DisconnectOPC();
        }

        private void OnApplicationExit(object sender, EventArgs e)
        {
            mijnController.DisconnectOPC();
        }

        #region OnSearchClosing

        private void OnSearchClosing(object sender, System.ComponentModel.CancelEventArgs e)
        {
            mijnController.MijnIO.WriteOrderList(mijnController.MijnIO.Location, mijnController.MijnIO.FileNameOrder, mijnController.OrderList);
            this.Enabled = true;
        }

        private void OnSearchClosingZonderWegschrijven(object sender, System.ComponentModel.CancelEventArgs e)
        {
            this.Enabled = true;
        }

        #endregion OnSearchClosing
    }
}